Socket
Socket
Sign inDemoInstall

gatsby-core-utils

Package Overview
Dependencies
16
Maintainers
6
Versions
363
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

gatsby-core-utils


Version published
Weekly downloads
506K
decreased by-6.28%
Maintainers
6
Install size
16.9 MB
Created
Weekly downloads
 

Package description

What is gatsby-core-utils?

The gatsby-core-utils package provides a set of utility functions that are commonly used in Gatsby projects. These utilities help with various tasks such as file system operations, URL handling, and more.

What are gatsby-core-utils's main functionalities?

createContentDigest

This utility function creates a content digest (hash) for a given input. It is useful for generating unique identifiers for content.

const { createContentDigest } = require('gatsby-core-utils');
const data = { key: 'value' };
const digest = createContentDigest(data);
console.log(digest);

cpuCoreCount

This function returns the number of CPU cores available on the machine. It can be useful for optimizing parallel tasks.

const { cpuCoreCount } = require('gatsby-core-utils');
const coreCount = cpuCoreCount();
console.log(coreCount);

isCI

This utility checks if the code is running in a Continuous Integration (CI) environment. It can be used to conditionally execute code based on the environment.

const { isCI } = require('gatsby-core-utils');
if (isCI()) {
  console.log('Running in a CI environment');
} else {
  console.log('Not running in a CI environment');
}

Other packages similar to gatsby-core-utils

Readme

Source

gatsby-core-utils

Utilities used in multiple Gatsby packages.

Usage

npm install gatsby-core-utils

createContentDigest

Encrypts an input using md5 hash of hexadecimal digest.

const { createContentDigest } = require("gatsby-core-utils")

const options = {
  key: "value",
  foo: "bar",
}

const digest = createContentDigest(options)
// ...

cpuCoreCount

Calculate the number of CPU cores on the current machine

This function can be controlled by an env variable GATSBY_CPU_COUNT setting the first argument to true.

valuedescription
Counts amount of real cores by running a shell command
logical_coresrequire("os").cpus() to count all virtual cores
any numberSets cpu count to that specific number
const { cpuCoreCount } = require("gatsby-core-utils")

const coreCount = cpuCoreCount(false)
// ...
const { cpuCoreCount } = require("gatsby-core-utils")
process.env.GATSBY_CPU_COUNT = "logical_cores"

const coreCount = cpuCoreCount()
// ...

joinPath

A utility that joins paths with a / on windows and unix-type platforms. This can also be used for URL concatenation.

const { joinPath } = require("gatsby-core-utils")

const BASEPATH = "/mybase/"
const pathname = "./gatsby/is/awesome"
const url = joinPath(BASEPATH, pathname)
// ...

isCI

A utility that enhances isCI from 'ci-info` with support for Vercel and Heroku detection

const { isCI } = require("gatsby-core-utils")

if (isCI()) {
  // execute CI-specific code
}
// ...

getCIName

A utility that returns the name of the current CI environment if available, null otherwise

const { getCIName } = require("gatsby-core-utils")

const CI_NAME = getCIName()
console.log({ CI_NAME })
// {CI_NAME: null}, or
// {CI_NAME: "Vercel"}
// ...

createRequireFromPath

A cross-version polyfill for Node's Module.createRequire.

const { createRequireFromPath } = require("gatsby-core-utils")

const requireUtil = createRequireFromPath("../src/utils/")

// Require `../src/utils/some-tool`
requireUtil("./some-tool")
// ...

Mutex

When working inside workers or async operations you want some kind of concurrency control that a specific work load can only concurrent one at a time. This is what a Mutex does.

By implementing the following code, the code is only executed one at a time and the other threads/async workloads are awaited until the current one is done. This is handy when writing to the same file to disk.

const { createMutex } = require("gatsby-core-utils/mutex")

const mutex = createMutex("my-custom-mutex-key")
await mutex.acquire()

await fs.writeFile("pathToFile", "my custom content")

await mutex.release()

Hashing

Parts of hash-wasm are re-exported from gatsby-core-utils or used in custom functions. When working on hashing where you'd normally use crypto from Node.js, you can use these functions instead. They especially show their advantage on large inputs so don't feel obliged to always use them. Refer to hash-wasm's documentation for more details on usage for the re-exported functions.

const { md5File, md5, createMD5, sha256, sha1 } = require("gatsby-core-utils")

// For md5, createMD5, sha256, sha1 refer to hash-wasm
await md5(`some-string`)

// md5File gives you the MD5 hex hash for a given filepath
await md5File(`package.json`)

Keywords

FAQs

Last updated on 23 Jan 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc